package com.streamax.app.cqbus.platform.ext

/**
 * @Author Xzh
 * @Date 2024/6/3
 * @Description
 */

/**
 * 将Double换位宽度为4的ByteArray BCD编码
 */
val Double.toCoordinateBCDByteArray4 : ByteArray
    get()  = run {
        var byteArray = ByteArray(4)
        //106.239812，精确到 0.00001， BCD 形式为 0x10 0x62 0x39 0x81
        var temp = (this * 100000).toInt().toString()
        if (temp.length < 8){
            temp = temp.padStart(8,'0')
        }
        if (temp.length > 8){
            temp =temp.substring(temp.length-8)
        }
        byteArray[0] = temp.substring(0,2).toInt(16).toByte()
        byteArray[1] = temp.substring(2,4).toInt(16).toByte()
        byteArray[2] = temp.substring(4,6).toInt(16).toByte()
        byteArray[3] = temp.substring(6,8).toInt(16).toByte()

        byteArray
    }

/**
 * 方向
 */
val Double.toAngleByteArray : ByteArray
    get()  = run {
        var byteArray = ByteArray(2)
        val lval = this.toLong()
        byteArray[0] = (lval / 100).toByte()
        byteArray[1] = (lval % 100).toByte()
        byteArray
    }


